1. Field of the Invention
Embodiments of the invention relates to the field of operating systems, and more specifically, to thread management.
2. Description of Related Art
Multithreading technologies have become popular in multiprocessor systems to support various levels of parallelism, to enable dynamic load balancing, to support virtual processors, and to enhance system performance. One of the challenges in designing an efficient multithreaded multiprocessor system is thread scheduling.
Existing approaches include use of the operating system (OS) to perform thread scheduling. Standard techniques employed by OS for thread scheduling in a multiprocessor system have a number of drawbacks. First, the OS does not normally take advantage of various levels of physical locality of resources; therefore, thread scheduling leads to inefficient thread distribution among the processors. Second, the OS typically employ priority-based or time slice-based scheduling policies which tend to degrade system performance due to high thread switching time. Third, the OS does not normally provide the flexibility in managing thread affinity and control of affinity granularity. The user does not have control over the scheduling management.